package com.woniu.service.Impl.homePage;

import com.woniu.dao.homePage.DistributionTwoDao;
import com.woniu.entity.Distribution;
import com.woniu.entity.Orders;
import com.woniu.entity.Sorting;
import com.woniu.entity.WorkUser;
import com.woniu.service.homePage.IDistributionTwoService;
import com.woniu.util.ResData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 配送前端service层
 * @author 任楷锐
 * @data 2023/3/13 7:43
 */
@Service
public class DistributionTwoServiceImpl implements IDistributionTwoService {
    @Autowired
    private DistributionTwoDao distributionTwoDao;
    //配送员开始配送
    @Override
    public ResData<?> startDispatching(Integer status,Integer dispatcherId,String id) {
        distributionTwoDao.startDispatching(status,dispatcherId,id);
        return new ResData<>().ok();
    }

    //接单中心的配送人员接单
    @Override
    public ResData<?> updateDistributionId(Integer dispatcherId,String id) {
        distributionTwoDao.updateDistributionId(dispatcherId,id);
        return new ResData<>().ok();
    }

    //查询工作人员的每日和每月业绩
    @Override
    public ResData getOwnPerformance(Integer dispatcherId, Date distributionBeginTime, Date distributionEndTime) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Integer ownPerformance = distributionTwoDao.getOwnPerformance(dispatcherId,simpleDateFormat.format(distributionBeginTime), simpleDateFormat.format(distributionEndTime));
        return new ResData<>().ok(ownPerformance);
    }

    //查询工作人员的个人订单详情
    @Override
    public ResData<?> queryOwnDistributionOrders(Integer dispatcherId) {
        List<Orders> ordersList = distributionTwoDao.queryOwnDistributionOrders(dispatcherId);
        return new ResData<>().ok(ordersList);
    }

    //查询所有待配送的订单,接单中心的显示
    @Override
    public ResData<?> queryAllDistributionOrders() {
        List<Orders> ordersList = distributionTwoDao.queryAllDistributionOrders();
        return new ResData<>().ok(ordersList);
    }

    //根据手机号查询工作人员所有信息
    @Override
    public ResData<?> queryWorkUser(String phone) {
        WorkUser workUser = distributionTwoDao.queryWorkUser(phone);
        return new ResData<>().ok(workUser);
    }

    // //工作人员根据手机号和密码登录
    @Override
    public ResData<?> LoginByPhone(String phone,String password) {
        Integer login = distributionTwoDao.LoginByPhone(phone, password);
        if(login <=0){
            return null;
        }
        return new ResData<>().ok();
    }

    //通过手机号获取当前登录的工作人员的dispatcherId
    @Override
    public ResData<?> getDispatcherIdByPhone(String phone) {
        Integer dispatcherIdByPhone = distributionTwoDao.getDispatcherIdByPhone(phone);
        return new ResData<>().ok(dispatcherIdByPhone);
    }

    //根据手机号修改工作人员密码
    @Override
    public ResData<?> updatePasswordByPhone(String phone,String password) {
        distributionTwoDao.updatePasswordByPhone(phone,password);
        return  new ResData<>().ok();
    }

    //根据配送员id 和订单号查询所有配送信息
    @Override
    public ResData<?> findDistribution(String orderId,Integer dispatcherId ) {
        Distribution distribution = distributionTwoDao.findDistribution(orderId,dispatcherId);
        return  new ResData<>().ok(distribution);
    }

    //插入配送表信息
    @Override
    public ResData<?> insertDistribution(Distribution distribution) {
        distributionTwoDao.insertDistribution(distribution);
        return new ResData<>().ok();
    }


    //修改配送表state订单状态
    @Override
    public ResData<?> updateDistributing(Integer state,String orderId, String userId) {
        distributionTwoDao.updateDistributing(state,orderId,userId);
        return new ResData<>().ok();
    }

    //确认收货修改配送表state订单状态
    @Override
    public ResData<?> updateDistributed(Integer state,String orderId, Long userId) {
        distributionTwoDao.updateDistributed(state,orderId,userId);
        return new ResData<>().ok();
    }


}
